package com.ugoodtech.mdcc.web.dto;

/**
 * Created by Lance on 2019-09-17.
 *
 * @author Lance Li
 */

/**
 * 搜索条件DTO
 */
public class SearchParamDTO {

  private String provinces;
  private String brandNames;
  private String categories;
  private Long serviceStartTime;
  private Long serviceEndTime;
  private Long startTime;
  private Long endTime;
  private String serviceType;
  private Integer serviceTimes;
  private String userName;
  private Long stationId;
  private String customerStats;
  private String customerTypes;
  private String paintBrands;
  private String productPositions;
  private Integer isFollowUp;
  private String departmentIds;
  private Integer isCustomer;
  private String scores;
  private Integer isCustomReportGenerated;
  private Long userId;

  public static SearchParamDTOBuilder builder() {
    return new SearchParamDTOBuilder();
  }

  public Long getUserId() {
    return userId;
  }

  public void setUserId(Long userId) {
    this.userId = userId;
  }

  public Long getStationId() {
    return stationId;
  }

  public void setStationId(Long stationId) {
    this.stationId = stationId;
  }

  public String getProvinces() {
    return provinces;
  }

  public void setProvinces(String provinces) {
    this.provinces = provinces;
  }

  public String getBrandNames() {
    return brandNames;
  }

  public void setBrandNames(String brandNames) {
    this.brandNames = brandNames;
  }

  public String getCategories() {
    return categories;
  }

  public void setCategories(String categories) {
    this.categories = categories;
  }

  public Long getServiceStartTime() {
    return serviceStartTime;
  }

  public void setServiceStartTime(Long serviceStartTime) {
    this.serviceStartTime = serviceStartTime;
  }

  public Long getServiceEndTime() {
    return serviceEndTime;
  }

  public void setServiceEndTime(Long serviceEndTime) {
    this.serviceEndTime = serviceEndTime;
  }

  public Long getStartTime() {
    return startTime;
  }

  public void setStartTime(Long startTime) {
    this.startTime = startTime;
  }

  public Long getEndTime() {
    return endTime;
  }

  public void setEndTime(Long endTime) {
    this.endTime = endTime;
  }

  public String getServiceType() {
    return serviceType;
  }

  public void setServiceType(String serviceType) {
    this.serviceType = serviceType;
  }

  public Integer getServiceTimes() {
    return serviceTimes;
  }

  public void setServiceTimes(Integer serviceTimes) {
    this.serviceTimes = serviceTimes;
  }

  public String getUserName() {
    return userName;
  }

  public void setUserName(String userName) {
    this.userName = userName;
  }

  public String getCustomerStats() {
    return customerStats;
  }

  public void setCustomerStats(String customerStats) {
    this.customerStats = customerStats;
  }

  public String getCustomerTypes() {
    return customerTypes;
  }

  public void setCustomerTypes(String customerTypes) {
    this.customerTypes = customerTypes;
  }

  public String getPaintBrands() {
    return paintBrands;
  }

  public void setPaintBrands(String paintBrands) {
    this.paintBrands = paintBrands;
  }

  public String getProductPositions() {
    return productPositions;
  }

  public void setProductPositions(String productPositions) {
    this.productPositions = productPositions;
  }


  public String getDepartmentIds() {
    return departmentIds;
  }

  public void setDepartmentIds(String departmentIds) {
    this.departmentIds = departmentIds;
  }

  public Integer getIsFollowUp() {
    return isFollowUp;
  }

  public void setIsFollowUp(Integer isFollowUp) {
    this.isFollowUp = isFollowUp;
  }

  public Integer getIsCustomer() {
    return isCustomer;
  }

  public void setIsCustomer(Integer isCustomer) {
    this.isCustomer = isCustomer;
  }

  public String getScores() {
    return scores;
  }

  public void setScores(String scores) {
    this.scores = scores;
  }

  public Integer getIsCustomReportGenerated() {
    return isCustomReportGenerated;
  }

  public void setIsCustomReportGenerated(Integer isCustomReportGenerated) {
    this.isCustomReportGenerated = isCustomReportGenerated;
  }

  @Override
  public String toString() {
    return "SearchParamDTO{" +
        "provinces='" + provinces + '\'' +
        ", brandNames='" + brandNames + '\'' +
        ", categories='" + categories + '\'' +
        ", serviceStartTime=" + serviceStartTime +
        ", serviceEndTime=" + serviceEndTime +
        ", startTime=" + startTime +
        ", endTime=" + endTime +
        ", serviceType=" + serviceType +
        ", serviceTimes=" + serviceTimes +
        ", userName='" + userName + '\'' +
        ", stationId='" + stationId + '\'' +
        ", customerStats='" + customerStats + '\'' +
        ", customerTypes='" + customerTypes + '\'' +
        ", paintBrands='" + paintBrands + '\'' +
        ", productPositions='" + productPositions + '\'' +
        ", isFollowUp=" + isFollowUp +
        ", departmentIds='" + departmentIds + '\'' +
        ", isCustomer=" + isCustomer +
        ", scores='" + scores + '\'' +
        ", isCustomReportGenerated=" + isCustomReportGenerated +
        '}';
  }

  public static class SearchParamDTOBuilder {

    private SearchParamDTO searchParamDTO = new SearchParamDTO();

    public SearchParamDTOBuilder provinces(String provinces) {
      searchParamDTO.setProvinces(provinces);
      return this;
    }

    public SearchParamDTOBuilder brandNames(String brandNames) {
      searchParamDTO.setBrandNames(brandNames);
      return this;
    }

    public SearchParamDTOBuilder categories(String categories) {
      searchParamDTO.setCategories(categories);
      return this;
    }

    public SearchParamDTOBuilder serviceStartTime(Long serviceStartTime) {
      searchParamDTO.setServiceStartTime(serviceStartTime);
      return this;
    }

    public SearchParamDTOBuilder customerStats(String customerStats) {
      searchParamDTO.setCustomerStats(customerStats);
      return this;
    }

    public SearchParamDTOBuilder customerTypes(String customTypes) {
      searchParamDTO.setCustomerTypes(customTypes);
      return this;
    }

    public SearchParamDTOBuilder serviceEndTime(Long serviceEndTime) {
      searchParamDTO.setServiceEndTime(serviceEndTime);
      return this;
    }

    public SearchParamDTOBuilder startTime(Long startTime) {
      searchParamDTO.setStartTime(startTime);
      return this;
    }

    public SearchParamDTOBuilder endTime(Long endTime) {
      searchParamDTO.setEndTime(endTime);
      return this;
    }

    public SearchParamDTOBuilder serviceTypes(String serviceType) {
      searchParamDTO.setServiceType(serviceType);
      return this;
    }

    public SearchParamDTOBuilder serviceTimes(Integer serviceTimes) {
      searchParamDTO.setServiceTimes(serviceTimes);
      return this;
    }

    public SearchParamDTOBuilder userName(String userName) {
      searchParamDTO.setUserName(userName);
      return this;
    }

    public SearchParamDTOBuilder stationId(Long stationId) {
      searchParamDTO.setStationId(stationId);
      return this;
    }


    public SearchParamDTOBuilder paintBrands(String paintBrands) {
      searchParamDTO.setPaintBrands(paintBrands);
      return this;
    }

    public SearchParamDTOBuilder productPositions(String productPositions) {
      searchParamDTO.setProductPositions(productPositions);
      return this;
    }

    public SearchParamDTOBuilder isFollowUp(int isFollowUp) {
      searchParamDTO.setIsFollowUp(isFollowUp);
      return this;
    }


    public SearchParamDTOBuilder isCustomer(int isCustomer) {
      searchParamDTO.setIsCustomer(isCustomer);
      return this;
    }

    public SearchParamDTOBuilder scores(String scores) {
      searchParamDTO.setScores(scores);
      return this;
    }

    public SearchParamDTOBuilder isCustomReportGenerated(Integer isCustomReportGenerated) {
      searchParamDTO.setIsCustomReportGenerated(isCustomReportGenerated);
      return this;
    }

    public SearchParamDTOBuilder departmentIds(String departmentIds) {
      searchParamDTO.setDepartmentIds(departmentIds);
      return this;
    }

    public SearchParamDTOBuilder userId(Long userId) {
      searchParamDTO.setUserId(userId);
      return this;
    }

    public SearchParamDTO build() {
      return searchParamDTO;
    }

  }
}
